#ifndef _MSN_USER_H
#define _MSN_USER_H
#include <glib.h>
typedef enum {
	MSN_USER_TYPE_UNKNOWN  = 0x00,
	MSN_USER_TYPE_PASSPORT = 0x01,
	MSN_USER_TYPE_UNKNOWN1 = 0x02,
	MSN_USER_TYPE_MOBILE   = 0x04,
	MSN_USER_TYPE_UNKNOWN2 = 0x08,
	MSN_USER_TYPE_UNKNOWN3 = 0x10,
	MSN_USER_TYPE_YAHOO    = 0x20
}MSN_USER_TYPE;

typedef enum {
	MSN_USER_STATU_NONE,
	MSN_USER_STATU_NLN,
	MSN_USER_STATU_BSY,
	MSN_USER_STATU_IDL,
	MSN_USER_STATU_BRB,
	MSN_USER_STATU_AWY,
	MSN_USER_STATU_PHN,
	MSN_USER_STATU_LUN,
}MSN_USER_STATU;

typedef enum {
	MSN_USER_LIST_NONE,
	MSN_USER_LIST_AL,
	MSN_USER_LIST_BL,
	MSN_USER_LIST_RL,
	MSN_USER_LIST_PL,
}MSN_USER_LIST_TYPE;

typedef struct {
	GString *passport;
	GString *store_name;    /* store in the server */
	GString *display_name;    /* You set after login. */
	
	MSN_USER_TYPE type;
	MSN_USER_STATU statu;
	GString *statu_line;
	/* a list of type */
	GList *list_type;
	/* a list of msg */
	GList *msgs;
}msn_user_t;

extern msn_user_t *msn_user_new(const char *passport);
extern void msn_user_clean(msn_user_t *user);
extern MSN_USER_LIST_TYPE msn_user_list_type_get(const char *str);
extern const char* msn_user_list_type_string(MSN_USER_LIST_TYPE type);
#endif
